package com.ruoyi.cm.domain.bo;

import com.ruoyi.cm.domain.CmPeriodMeasurement;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 中间计量业务对象 cm_period_measurement
 *
 * @author zxs
 * @date 2024-09-28
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class CmPeriodMeasurementBo extends BaseEntity {

    /**
     * 主键
     */
//    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 期数id
     */
//    @NotNull(message = "期数id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long qsId;

    /**
     * 计量数量
     */
//    @NotNull(message = "计量数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal measurementQuantity;

    /**
     * 合价
     */
//    @NotNull(message = "合价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal totalPrice;

    /**
     * 剩余数量
     */
//    @NotNull(message = "剩余数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal remainingQuantity;

    /**
     * 标段id
     */
//    @NotNull(message = "标段id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long bdId;
    /**
     * 站点id
     */
//    @NotNull(message = "站点id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long zdId;

    /**
     * 附件id(逗号拼接)
     */
//    @NotBlank(message = "附件id(逗号拼接)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileNo;

    /**
     * 合同清单id
     */
//    @NotNull(message = "合同清单id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long contractListId;

    /**
     * 期数
     */
//    @NotNull(message = "期数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer qs;

    /**
     * 备注
     */
//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    private List<CmPeriodMeasurement> measurementBos;

    //本期计量金额(每站点当期计量金额合价)
    private BigDecimal benqjlje;
    //累计计量金额(已计量期数的本期计量金额合计)
    private BigDecimal leijjlje;
    //本期支付金额(本期计量金额-扣回开工预付金额+奖罚金)
    private BigDecimal benqzfje;
    //累计支付金额(开工预付款-奖励基金+已计量期数的本期支付金额合计)
    private BigDecimal leijzfje;
    // 变更容量
    private BigDecimal chgRongliang;
    // 变更后容量
    private BigDecimal chgZongjia;

    // 变更审批状态
    private String chgApprovalStatus;
}
